let qs = require('querystring');

const getParams = (ctx) => {
    return new Promise((resolve,reject) => {
        //前端post传递的信息是以流的形式传递,异步的
        let str = '';

        ctx.req.on('data',(chunk) => {
            str += chunk;
        })

        ctx.req.on('end',() => {
            console.log("str",str);
            if(ctx.request.header['content-type']==='application/json;charset=UTF-8'){
                //对象字符串
                resolve(JSON.parse(str))
            }else{
                //序列化字符串
                resolve(qs.parse(str))
            }
            
        })
    })
}

module.exports = () => {
    return async (ctx,next) => {
        ctx.request.body = await getParams(ctx);
        await next();
    }
}


/***
 * 前端传递的内容类型：
 * 
 * content-type ：  
 * 
 * 
 *  application/json  对象字符串
 * 
 *  application/x-www-form-urlencoded  序列化字符串
 * 
 *  multipart/form-data   提交表单
 * 
 * 
 * 
 *   
 * 
 * 
*/